A typical operating system includes a file system. The file system provides a mechanism for the storage and retrieval of files. More specifically, the file system stores information provided by the user (i.e., data) and information describing the characteristics of the data (i.e., metadata). The file system also provides extensive programming interfaces to enable the creation and deletion of files, reading and writing of files, performing seeks within a file, creating and deleting directories, managing directory contents, etc. In addition, the file system provides management interfaces to create and delete file systems. File systems are typically controlled and managed by operating system parameters.
An application, which may reside on the local system (i.e., computer) or may be located on a remote system, uses files as an abstraction to address data. Conventionally, this data is stored on a non-volatile storage device, such as a disk. To access a file, the operating system (via the file system) typically provides file manipulation interfaces to, for example, open, close, read, and write the data within each file. In order to decrease the time required to read a file from the non-volatile storage device (e.g., the disk), copies of recently accessed files are cached in main memory. Thus, when a request to read a file is received, the file system may first query the main memory to determine whether a copy of the file is cached prior to querying the non-volatile storage. If the file is present in the main memory, the file is read from the main memory. However, if the file is not present in the main memory, the file is retrieved from the non-volatile storage device. The time for retrieval from the main memory is usually significantly less than the time for retrieval from the non-volatile storage device.